// 接口方法
import request from '@/utils/request'
// import { likeCommentAPI as likeComment } from './Article'
// export const likeCommentAPI = likeComment
export * from './Article' // 从Article里接到所有导出, 接着向外export 导出即可

/**
 * 登录接口
 * @param {*} param0 数据对象
 * @returns Promise对象
 */
export const loginAPI = ({ mobile, code }) => request({
  url: '/v1_0/authorizations',
  method: 'POST',
  data: {
    mobile: mobile,
    code: code
  }
})

// 更新 - 个人头像
export const uploadHeadImgAPI = (fd) => request({
  url: '/v1_0/user/photo',
  method: 'PATCH', // 局部更新, PUT一般是全都更新
  // Content-Type为multipart/form-data不需要自己写, 只要让"请求体是FormData类型(new FormData())的", 浏览器会自动修改Content-Type为multipart/form-data
  data: fd
})

// 更新 - 个人信息
// dataObj = {name: 'abc'}
export const updateUserInfoAPI = ({ name = null, gender = null, birthday = null, real_name = null, intro = null }) => {
  const obj = {}
  if (name !== null) {
    obj.name = name
  }
  if (gender !== null) {
    obj.gender = gender
  }
  if (birthday !== null) {
    obj.birthday = birthday
  }
  if (real_name !== null) {
    obj.real_name = real_name
  }
  if (intro !== null) {
    obj.intro = intro
  }

  return request({
    url: '/v1_0/user/profile',
    method: 'PATCH',
    data: obj
  })
}

// 刷新用户token
export const refreshTokenAPI = () => request({
  url: '/v1_0/authorizations',
  method: 'PUT',
  headers: {
    Authorization: 'Bearer ' + localStorage.getItem('refresh_token')
  }
})

/**
 * 获取已选频道
 * @returns Promise对象
 * 注意: 不强制要求用户登录, 匿名用户有默认的频道列表
 */
export const getUserChannelListAPI = () => request({
  url: '/v1_0/user/channels'
})

/**
 * 获取所有频道
 * @returns Promise对象
 */
export const getChannelListAPI = () => request({
  url: '/v1_0/channels'
})

// 重置频道(覆盖式保存)
// RestFul API规范 (地址相同, 请求方式不同, 动作和功能不同)
export const setUserChannelAPI = (channelArr) => request({
  url: '/v1_0/user/channels',
  method: 'PUT',
  data: {
    channels: channelArr
    // 数组套对象发给后台 -> 转成了JSON字符串发给后台
    // 对象套对象也能转成JSON字符串格式 => 后台
  }
})

// 删除频道
export const removeChannelAPI = (channelId) => request({
  url: `/v1_0/user/channels/${channelId}`,
  method: 'DELETE'
})

// 搜索 - 联想列表
export const suggestListAPI = (keyWord) => request({
  url: '/v1_0/suggestion',
  params: {
    q: keyWord
  }
})

// 搜素 - 结果列表
export const searchResultAPI = ({ keyWords, page = 1, per_page = 10 }) => request({
  url: '/v1_0/search',
  params: {
    q: keyWords,
    page: page,
    per_page: per_page
  }
})

// 获取 - 用户信息(包含关注, 动态, 粉丝数量)
export const getUserInfoAPI = () => request({
  url: '/v1_0/user'
})

// 获取 - 个人资料(包含生日, 用户名, 头像)
export const getProfileAPI = () => request({
  url: '/v1_0/user/profile'
})

// 该不该传参:
// 函数内自己能确定的
// 函数调用一万次. 这个值都是固定的, 就写死在里面
// 函数调用5次, 这个值会变, 必须要留好参数, 让调用者决定
